Repository navigation
feat(id): add kitty-disambiguate-v1 key decoding - #4438
Conversation
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 56 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 911d7a4294
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| } else { | ||
| match digit_value(List.first(bytes) ?? 0) { | ||
| Err(_) => Err({}) | ||
| Ok(digit) => if value > 111111 { Err({}) } else { parse_decimal_help(drop(bytes, 1), value * 10 + digit) } |
There was a problem hiding this comment.
Allow the full Unicode range in decimal parsing
For CSI-u key numbers from 1111120 through 1114111, this accumulator guard rejects valid Unicode scalars before the final digit is appended, even though key_from_code explicitly accepts them. For example, ESC [ 1113856;5u (Control+U+10FF00) becomes EventUnknown instead of a scalar event. Allow an accumulator up to 111411 and retain the existing final bounds check in parse_decimal so the decoder supports its advertised range through U+10FFFF.
Useful? React with 👍 / 👎.
Summary
Slice A of #787 only. The decoder is additive and inert: no negotiation, SSH/browser activation, or session changes. Numeric forms, modifier encoding, and functional-key entries were verified against the upstream kitty keyboard protocol on 2026-11-02.
Evidence
just roc-test— Key had 13 legacy expectations and no rich decoder.just roc-test— RocJson 29, Screen 15, Key 59 expectations pass; fixture JSON parses;git diff --checkclean.Key.parseexpectations, including modified-arrowUnknown, remain unchanged.Merge Danger
Door: two-way
Blast Radius: low
New API and fixtures only; active behavior remains unchanged. Unsupported protocol forms remain
Unknown. Later activation slices remain gated on F13.4 detection (#786).Need help on this PR? Tag
@codesmith-botwith what you need.